package com.fz.us.admin.dict.dao;

import com.fz.us.admin.base.dao.BaseDao;
import com.fz.us.admin.dict.dto.DictItemDto;
import com.fz.us.admin.dict.entity.DictItem;

import java.util.List;

/**
 * Dao接口 - 字典Item
 * ============================================================================
 * 版权所有 2016 。
 *
 * @author fallenpanda
 * @version 1.0 2016-07-21 。
 * ============================================================================
 */
public interface DictItemDao extends BaseDao<DictItem, String> {

    /**
     * 字典列表(系统级)
     *
     * @param dictId 系统字典Id
     * @return
     */
    public List<DictItem> listSystem(String dictId);

    /**
     * 字典列表(自定义级)
     *
     * @param dictId 系统字典Id
     * @param keyId keyId
     * @return
     */
    public List<DictItemDto> listDefault(String dictId, String keyId);

    /**
     * 字典列表(自定义级)(可选)
     *
     * @param dictId 系统字典Id
     * @param keyId keyId
     * @return
     */
    public List<DictItemDto> listSelectableDefined(String dictId, String keyId);

    /**
     * 查找字典对象
     *
     * @param dictId 系统字典Id
     * @param value key
     * @return
     */
    public DictItem getByValue(String dictId, String value);

    /**
     * 查找字典对象
     *
     * @param dictId 系统字典Id
     * @param keyId keyId
     * @param value key
     * @return
     */
    public DictItem getByValue(String dictId, String keyId, String value);

    /**
     * 最大排序号
     *
     * @param dictId 系统字典Id
     * @param keyId keyId
     * @return
     */
    public int getMaxSortNo(String dictId, String keyId);

}